<!--菜单树组件-->
<!--递归生成菜单，并在点击响应函数里面根据菜单URL跳转到指定路由-->
<template>
  <el-submenu v-if="menu.children && menu.children.length >= 1" :index="'' + menu.id">
    <template slot="title">
      <i :class="menu.icon" class="menuIcon"></i>
      <span slot="title" class="title">{{menu.name}}</span>
    </template>
    <MenuTree v-for="item in menu.children" :key="item.id" :menu="item"></MenuTree>
  </el-submenu>
  <el-menu-item v-else :index="'' + menu.id" @click="handleRoute(menu)">
    <i :class="menu.icon" class="menuIcon"></i>
    <span slot="title" class="title">{{menu.name}}</span>
  </el-menu-item>
</template>

<script>
  import { getIFrameUrl, getIFramePath } from '@/utils/iframe'
  export default {
    name: 'MenuTree',
    props: {
      menu: {
        type: Object,
        required: true
      }
    },
    methods: {
      handleRoute (menu) {
        // 如果是嵌套页面，转换成iframe的path
        let path = getIFramePath(menu.url)
        if(!path) {
          path = menu.url
        }
        // 通过菜单URL跳转至指定路由
        this.$router.push("/" + path)
      }
    }
  }
</script>

<style scoped lang="scss">
  // .el-submenu, .el-menu-item {
  //   background-color: #3c4b5a44;
  // }
  .title {
    padding-left: 5px;
  }
</style>
